package com.cmc.cloud.cmclink.doc.vo.blnoblprintlogvo;

import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.ToString;
import org.springframework.format.annotation.DateTimeFormat;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.time.LocalDateTime;
import java.util.Date;

import static com.cmes.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;

/**
 * PrintB/L 列表页响应 VO
 *
 * @author llp
 */
@Schema(description = "PrintB/L 列表页响应 VO")
@Data
@ToString(callSuper = true)
public class PrintBlRespVo {

    @Schema(description = "ID")
    private Long id;

    @Schema(description = "提单号")
    private String blNo;

    @Schema(description = "打印状态")
    private String printStatus;

    private String printedBy;

    @Schema(description = "签发文件ID")
    private String issueFieId;

    @Schema(description = "草稿文件ID")
    private String draftFileId;

    @Schema(description = "打印时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private String printTime;

    @Schema(description = "订舱人编码")
    private String bookingParty;

    @Schema(description = "订舱人英文名")
    private String bookingPartyEn;

    @Schema(description = "船名")
    private String bkgVesselCode;

    @Schema(description = "航次")
    private String bkgVoyage;

    @Schema(description = "POR Code")
    private String porCode;

    @Schema(description = "POL Code")
    private String polCode;

    @Schema(description = "DEL Code")
    private String delCode;

    @Schema(description = "签署类型")
    private String signType;
    @Schema(description = "客户要求签单类型")
    private String signOrder;
    @Schema(description = "提单主体")
    private String blEntity;
    @Schema(description = "分并单类型")
    private String splitCombineType;

    @Schema(description = "舱位归属")
    private String spaceOwner;

    @Schema(description = "箱主")
    private String cntrOwner;

    @Schema(description = "SI状态")
    private String siStatus;
    @Schema(description = "打印人")
    private String updater;

    @Schema(description = "draft确认人")
    private String draftConfirmer;

    @Schema(description = "draft确认时间")
    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private String draftConfirmDate;

}
